package cn.koala.key.api;

import cn.koala.key.common.enums.EnumKeyValue;
import cn.koala.key.common.feign.BaseApi;
import cn.koala.key.firstmaintain.entity.dto.FirstMaintainCardDeductParamDTO;
import cn.koala.key.firstmaintain.entity.dto.FirstMaintainCardTypeModifyDTO;
import cn.koala.key.firstmaintain.entity.vo.FirstMaintainCardSearchParamVO;
import cn.koala.key.firstmaintain.entity.vo.FirstMaintainCardSearchResultVO;
import cn.seed.common.core.Result;
import cn.seed.common.core.ResultList;
import feign.Param;
import feign.RequestLine;

import java.util.List;

/**
 * 首保卡api
 *
 * @author liutao
 * @date 2021/1/26
 */
public interface FirstMaintainCardApi extends BaseApi {

    @RequestLine("POST /first/card/receive?oprNo={oprNo}&oprName={oprName}")
    Result<?> batchReceive(List<String> vinNoList, @Param("oprNo") String oprNo,@Param("oprName") String oprName);

    @RequestLine("POST /first/card/deductCount")
    Result<?> batchDeductCount(List<FirstMaintainCardDeductParamDTO> paramDTOList);

    @RequestLine("POST /first/card/type/modify")
    Result<?> batchModifyCardType(List<FirstMaintainCardTypeModifyDTO> paramDTOList);

    @RequestLine("GET /first/card/search")
    Result<ResultList<FirstMaintainCardSearchResultVO>> searchByCondition(FirstMaintainCardSearchParamVO paramVO);

    @RequestLine("GET /publicFileDownloadUrls/download?configurationId={configurationId}")
    Result<String> getDownloadUrlByConfigurationId(@Param("configurationId") String configurationId);

    @RequestLine("GET /first/card/status/list")
    Result<List<EnumKeyValue>> listCardStatus();
    @RequestLine("GET /first/card/type/list")
    Result<List<EnumKeyValue>> listCardType();
}
